Re: [GENERAL] Auto Ordering

Поиск
Список
Период
Сортировка
От Herouth Maoz
Тема Re: [GENERAL] Auto Ordering
Дата
Msg-id l03130300b4445ed275ee@[147.233.159.109]
обсуждение исходный текст
Ответ на Re: [GENERAL] Auto Ordering  ("amy cheng" <amycq@hotmail.com>)
Список pgsql-general
At 21:00 +0200 on 01/11/1999, amy cheng wrote:


> then, why use int, isn't char better? (almost no need for batch).

It all depends in the application. First, one must note that a
variable-length char takes more space (More than four bytes), and also,
variable-length fields have a slight performance penalty in retrieval.

Second, the question is what you want to do with it. I once had an
application in which the data items were lines in a piece of text. One
could add a line anywhere. So, if you wanted to insert a line between line
number 340 and line number 420, it was easy to find a number in between -
the average of the two numbers (420+340)/2 = 380. This would give you some
space for later addition between line 340 and 380 - using the same formula
- or between 380 and 420.

I think doing such a calculation in text is a bit more awkward. But it all
depends on whether you need to allow inserts on a regular basis, and assign
the orders manually. It's a question of design.

BTW, I think my suggestion for batch renumbering won't work in all cases. I
think a better alternative would be:

SELECT the_order as old_order, 0 as new_order
INTO TABLE temp_numbers
FROM questions
ORDER BY old_order;

CREATE SEQUENCE new_seq INCREMENT 100 START 100;

UPDATE temp_numbers
SET new_order = nextval( 'new_seq' );

UPDATE questions
SET the_order = temp_numbers.new_order
WHERE questions.the_order = temp_numbers.old_order;

DROP SEQUENCE new_seq;
DROP TABLE temp_numbers;

I also think this can be done more easily in a pl/pgsql function, but I am
not exactly an expert on them.

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma



В списке pgsql-general по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: [GENERAL] users in Postgresql
Следующее
От: "HK Woo"
Дата:
Сообщение: PostgreSQL